using System.Collections.Generic;
using Godot;

public partial class BaseLevelManager : Node2D
{
    public BaseMapManager MapManager;
    public RobotManager RobotManager;
    public Cursor Cursor;
    protected string configName;
    public Robot CurrentRobot { get; private set; }
    public RobotUICommand CurrentCommand { get; private set; } = RobotUICommand.None;
    protected LevelModel levelModel;
    Callable robotMoveEndCallable;

    protected LevelStateMachime stateMachime;
    public int CurrentRoundIndex { get; private set; } = -1;
    protected string stateName;
    protected List<EventModel> roundEvents;
    protected int currentEventIndex = -1;
    public EventModel CurrentEvent { get; private set; }
    public string LevelTitle => levelModel.Title;

    Node UIRoot;
    public RobotInfo UIRobotInfo { get; private set; }
    public RobotDetailInfo UIRobotDetail { get; private set; }
    public LevelInfo UILevelInfo { get; private set; }
    public UIConfirm UIConfirm { get; private set; }
    public RobotWeaponSelection UIRobotWeaponSelection { get; private set; }

    Callable endTargetRobotActionCallable;
    Callable endRoundCallable;

    public WeaponEntity CurrentWeapon { get; private set; }

    public BattleManager BattleManager { get; private set; }

    public bool IsPlayerRonnd { get; set; }

    public string BGM { get; protected set; } = "87";

    public VFXManager VFXManager { get; private set; }

    public PilotSkillSelection UISkillSelection;
}